1. Field of the Invention
The present invention relates generally to telecommunications and in particular to echo cancellation/suppression and double-talk detection in communication paths.
2. Description of the Related Art
Adaptive echo cancellers have been used for several decades to cancel line echoes generated by hybrid transformers in telephone networks, as well as acoustic echoes generated by the reflection of loudspeaker signals back into the microphone in hands-free communication devices (see J. Benesty et. al., “Advances in network and acoustic echo cancellation,” Springer, 2001, and E. Hansler, G. Schmidt, “Acoustic echo and noise control, a practical approach,” Wiley, 2004).
Recently, the use of speech coding in telephone networks and the emergence of packet-based telephony have contributed to increased delay in telephone communications. This increased delay has exacerbated the echo effects and therefore created a need for better echo cancellers.
One known problem in echo cancellation algorithms pertains to divergence during so-called “double-talk” periods where both parties involved in the communication talk simultaneously. If left to adapt, the echo canceller treats the interfering double-talk signal as echo, resulting in severe misalignment of its adaptive filter and serious degradation of its performance.
Historically, the most prevalent technique used in echo cancellers to avoid divergence during double-talk has been the use of double-talk detection (DTD) algorithms that detect double-talk and freeze (or slow down significantly) adaptation during these intervals. Double-talk detectors have been the subject of intense research at the academic level as well as in the industrial world, leading to many publications (see U.S. Pat. Nos. 6,775,653; 6,804,203; 6,944,288 and S. Gay and J. Benesty, “Acoustic signal processing for telecommunication,” Kluwer, 2000). Such prior art DTD algorithms range from simple energy-based algorithms, such as the Geigel algorithm (see D. L. Duttweiler, “A twelve-channel digital echo canceller,” IEEE Trans. Commun., vol. 26, pp 647-653, May 1978), to advanced algorithms such as the normalized cross-correlation DTD (see J. Benesty, D. R. Morgan, and J. H. Cho, “A new class of doubletalk detectors based on cross-correlation,” IEEE Trans. Speech Audio Processing, March 2000), or frequency-domain coherence DTD (see T. Gansler, M. Hansson, C. J. Ivarsson and G. Salomonsson, “A double-talk detector based on coherence,” IEEE Trans. Commun., vol. 44, pp. 1421-1427, November 1996).
As a general rule, the algorithms that offer the best performance in terms of detection rate and reliability use some sort of time averaging to infer their decision, and therefore tend to present some latency in triggering signals to freeze the echo canceller adaptation. As a result, some divergence can still occur at the beginning of double-talk intervals, which can be detrimental to the quality of the communication.
K. Ochiai, T. Araseki and T. Ogihara, “Echo canceller with two echo path models,” IEEE Trans. Commun., vol. COM-25, pp 589-595, June 1977, set forth a twin-filter structure to protect echo cancellers against divergence during double-talk. Two transversal filters are set forth for implementing the twin-filter structure, one of which is adaptive while the other is fixed. An alternative twin-filter structure is set forth in J. Liu, “A Novel Adaptation Scheme in the NLMS Algorithm for Echo Cancellation,” IEEE Signal Processing Letters, Vol. 8, No. 1, pp. 20-22, January 2001, where the fixed filter is replaced by a very slowly adaptive filter. In either case, the fixed (or slowly adapting) filter is updated with the contents of the adaptive filter when there is a high level of certainty that the adaptive filter outperforms the fixed (or slowly adapting) filter in terms of echo cancellation. Many variants of the twin-filter structure have been proposed (see, for example, U.S. Pat. No. 6,947,549 and the adaptation scheme set forth in J. Liu, discussed above). One general problem with these prior art structures is that they require at least one extra filtering operation, as well as a second memory buffer to store the coefficients of the second filter.